/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tv.global.web;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.mail.internet.InternetAddress;
import tv.global.modelo.Parametro;
import tv.global.util.MailFactory;
import tv.global.rn.ParametrosRN;
import tv.global.util.JsfUtil;

import tv.seguridad.web.UsuarioSessionBean;

/**
 *
 * @author ctrosch
 */
@ManagedBean(name="contactoBean")
@ViewScoped
public class ContactoBean implements Serializable {

    @EJB private ParametrosRN parametroRN;
    @EJB private MailFactory mailFactory;


    private String nombreContacto;
    private String emailContacto;
    private String asunto;
    private String telefono;
    private String mensaje;

    @ManagedProperty(value = "#{usuarioSessionBean}")
    private UsuarioSessionBean usuarioSession;

    /** Creates a new instance of ContactoMB */
    public ContactoBean() {

    }
    
    @PostConstruct
    private void init(){

        try {
            if (usuarioSession.isEstaRegistrado()) {

                nombreContacto = usuarioSession.getUsuario().getCliente().getNombre();
                emailContacto = usuarioSession.getUsuario().getCliente().getDireml();
                telefono = usuarioSession.getUsuario().getCliente().getTelefn();

            }
        } catch (Exception e) {
        }
    }

    public void enviarMail(){

        enviarMailEmpresa();
        enviarMailCliente();
        reset();

    }

    public void enviarMailCliente(){

        String[] parrafos = new String[5];
        parrafos[0] = "Estimado cliente:";
        parrafos[1] = "Su consulta ha sido enviada y en breve nos pondremos en contacto con usted para hacerle llegar nuestra respuesta";
        parrafos[2] = "Su consulta:";
        parrafos[3] = mensaje;
        parrafos[4] ="Muchas gracias por utilizar nuestra tienda virtual! ";
        
        if(mailFactory.enviarHTML(null,"Su consulta a Intercap S.R.L.: " +asunto,emailContacto, mailFactory.generarMensaje(parrafos))){
            JsfUtil.addInfoMessage("Su consulta ha sido enviada, en breve nos pondremos en contacto con usted","");
        }else{
            JsfUtil.addWarningMessage("Disculpe las molestias, actualmente no podemos enviar su consulta","");
        }
    }

    public void enviarMailEmpresa() {
        try {
            Parametro p = new Parametro();
            try {
                p = parametroRN.getParametros();
            } catch (Exception ex) {

            }           
            String[] parrafos = new String[4];

            parrafos[0] = "Contacto: " + nombreContacto;
            parrafos[1] = "Email: " + emailContacto ;
            parrafos[2] = "Telefono: " + telefono;
            parrafos[3] = "Consulta:\n" + mensaje;

            InternetAddress dirFrom = new InternetAddress(emailContacto, nombreContacto);
            mailFactory.enviarHTML(dirFrom, "Consulta web: " + asunto, p.getEmailRecepcionConsulta(), mailFactory.generarMensaje(parrafos));
            
        } catch (UnsupportedEncodingException unsupportedEncodingException) {

            JsfUtil.addErrorMessage(unsupportedEncodingException.getMessage());
        }
        

    }

    public String verContacto(){

        return "../global/contacto.xhtml";
    }

    public void reset(){

        setAsunto(null);
        setEmailContacto(null);
        setTelefono(null);
        setMensaje(null);
        setNombreContacto(null);
    }

    //----------------------------------------------------------------------

    public String getAsunto() {
        return asunto;
    }

    public void setAsunto(String asunto) {
        this.asunto = asunto;
    }

    public String getEmailContacto() {
        return emailContacto;
    }

    public void setEmailContacto(String emailContacto) {
        this.emailContacto = emailContacto;
    }

    public String getMensaje() {
        return mensaje;
    }

    public void setMensaje(String mensaje) {
        this.mensaje = mensaje;
    }

    public String getNombreContacto() {
        return nombreContacto;
    }

    public void setNombreContacto(String nombreContacto) {
        this.nombreContacto = nombreContacto;
    }

    public UsuarioSessionBean getUsuarioSession() {
        return usuarioSession;
    }

    public void setUsuarioSession(UsuarioSessionBean usuarioSession) {
        this.usuarioSession = usuarioSession;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public ParametrosRN getParametroRN() {
        return parametroRN;
    }

    public void setParametroRN(ParametrosRN parametroRN) {
        this.parametroRN = parametroRN;
    }








}
